home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
- ************************************************************
-
- * *
-
- * Beebug *
-
- * *
-
- * A R C H I M E D E S *
-
- * *
-
- * AA RRRRRRRR CCCCCC *
-
- * AA AA RR RR CC CC *
-
- * AA AA RR RR CC *
-
- * AAAAAAAAAA RRRRRRRR CC *
-
- * AA AA RR RR CC *
-
- * AA AA RR RR CC CC *
-
- * AA AA RR RR CCCCCC *
-
- * *
-
- * *
-
- * by David Pilling *
-
- * *
-
- * *
-
- * This program is Public Domain *
-
- * *
-
- ************************************************************
-
-
-
-
-
-
-
-
- ********************************************************************************* ARC Version Numbers ** ------------------- ** ** Version 1.0 - 29/06/88 Initial release ** Version 1.1 - 01/09/88 PKARC compatibility added ** Version 1.2 - 17/10/88 Network compatible version ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *********************************************************************************Archimedes ARC Page 2
-
-
-
-
- Contents
-
- --------
-
-
-
- (1) Introduction
-
- (2) How to use ARC
-
- (3) ARC commands
-
- (4) Archimedes ARC file format
-
- (5) ARC support
-
-
-
-
- 1. Introduction
-
- ---------------
-
- ARC is the Archimedes archive utility. An archive is a file in which many
-
- smaller files are stored. You may, using the ARC utility, create archives and
-
- add files to them (ARC'ing a file) or remove files (de-ARC'ing). One of the
-
- features of ARC, is that files are stored in a highly compressed form; thus
-
- saving disc space and allowing more rapid transfer of files by modem. However,
-
- probably the most useful feature of an archive is that like sub-directories
-
- in the ADFS, it makes keeping track of files when transferring them from one
-
- machine to another, much simpler.
-
-
- Archives have a long history going back to UNIX and CP/M. An example of an
-
- archive with no compression is the UNIX shar format. Whilst on CP/M archive
-
- utilities which used data compression include squeeze, LUE and LBR. Perhaps
-
- the most well known archive format and utility is the System Enhancements
-
- Associates (SEA) ARC for the IBM PC which was based on many of these earlier
-
- programs. This has now been transferred to the Atari ST and Amiga micros. In
-
- addition, other more advanced versions of it have appeared on the PC like
-
- PKARC by Phil Katz. Beebug Archimedes ARC is fully compatible with SEA's ARC
-
- program. Using it, you can successfully unpack PC archives on your Archimedes,
-
- as well as create PC format archives. In addition, you can use a special
-
- Archimedes format archive which while not compatible with the PC, preserves
-
- Archimedes file attributes like load and exec addresses.
-
-
- If you dial up your local bulletin board, you will see many ARC files (they
-
- are usually identified by the suffix .ARC). Using ARC, you will be able to
-
- transfer the files in these to your Archimedes. Obviously, you cannot use
-
- executable PC programs, but there are many text and data files which you may
-
- want to examine (such as documentation, C source files, screen images etc.).
-
-
- Do not get the impression from the above, that the data compression aspect of
-
- ARC is just a side effect. Frequently, you may achieve a space saving of upto
-
- 90%. Just how much space you save, depends on the type of file being ARC'd.
-
- Text files usually compress well. Whilst PC executable files rarely compress
-
- by much, Archimedes executables seem to show good savings in space (often
-
- owing to Acorn's way of handling arrays and because of the high redundancy in
-
- ARM code).
-
- Archimedes ARC Page 3
-
-
-
-
- 2. How to use ARC
-
- -----------------
-
- Archimedes ARC consists of two files: the program ARC, and ARC_DOC containing
-
- this text. You use ARC by typing *arc followed by a number of parameters. If
-
- you type *arc on its own without parameters, a page of help information is
-
- displayed. For example:
-
-
-
- *arc
-
-
- Archimedes ARC - Archive utility
-
- Usage: ARC {amufdxeplt}[bswnoiq][g<password>] <archive> [<filename> . . .]
-
- Where: a = add files to archive
-
- m = move files to archive
-
- u = update files in archive
-
- f = freshen files in archive
-
- d = delete files from archive
-
- x,e = extract files from archive
-
- p = print file to screen
-
- l = listing of files in archive
-
- t = test archive integrity
-
- b = retain backup copy of archive
-
- s = suppress compression (store only)
-
- w = suppress warning messages
-
- n = suppress notes and comments
-
- o = overwrite existing files when extracting
-
- i = Use IBM PC Archive format
-
- q = Use PKARC style squashing
-
- g = Encrypt/decrypt archive entry
-
-
- Written for the Archimedes by David Pilling
-
- Put in the Public Domain by BEEBUG V1.1 September 1988
-
-
-
- Although the syntax of the ARC program may look a little frightening at first,
-
- it is really quite straightforward. Typically you will almost always use just
-
- a few of these options. The letters which appear after 'ARC', split into two
-
- groups; commands amufdxeplt and options bswnoiq and g. In general, you should
-
- have just one command letter and as many options as you need. The next section
-
- looks at the commands and options.
-
- Archimedes ARC Page 4
-
-
-
-
- 3. ARC commands
-
- ---------------
-
-
-
- a = add files to archive
-
-
- This command is used to add files to an archive. If the archive does not
-
- exist, it is automatically created. An example of this command is:
-
-
- *arc a utils_arc util1 util2 util3 util4
-
-
- This adds the files util1, util2 etc. to the archive utils_arc. You can
-
- use wildcards in this command as follows:
-
-
- *arc a my_arc b*
-
-
- This will add all files whose names begin with 'b' to the archive. You
-
- can use any legal filename for the name of the archive, but we recommend
-
- that you add the suffix '_arc' to the end of the name. This will help
-
- you identify ARC files. In addition, ARC files can also be identified by
-
- their filetype, which is set to &DDC (Acorn approved filetype).
-
-
-
- m = move files to archive
-
-
- This command is like 'a' except that the files are deleted from the
-
- local filing system as they are added to the archive file.
-
-
-
- u = update files in archive
-
-
- This only adds files to the archive if the versions on disc have a more
-
- recent date stamp, or if they are not already in the archive. For
-
- example:
-
-
- *arc u my_arc
-
-
- will update all files in the current directory that have been created or
-
- changed since they were last archived.
-
-
-
- f = freshen files in archive
-
-
- This is like the 'a' command, except that files are only added if they
-
- already exist in the archive with an earlier date stamp.
-
-
-
- d = delete files from archive
-
-
- This command allows you to delete files from an archive. For example:
-
-
- *arc d my_arc bob
-
-
- will remove the file bob from the archive file.
-
- Archimedes ARC Page 5
-
-
-
-
- x,e = extract files from archive
-
-
- These two commands, remove files from an archive and create them in a
-
- usable form on your disc. For example;
-
-
- *arc x my_arc util1
-
-
- recreates the file 'util1' from the archive. Notice that 'util1' remains
-
- part of the archive. If you want to extract all the files, simply type:
-
-
- *arc x my_arc
-
-
-
- p = print file to screen
-
-
- This is very similar to 'x' and 'e' except that the file is printed out
-
- on the screen, instead of being sent to the filing system.
-
-
-
- l = listing of files in archive
-
-
- This very useful command shows you the contents of an archive along with
-
- much useful information. For example, to see the contents of the archive
-
- called 'my_arc', type:
-
-
- *arc l my_arc
-
-
- You can, of course, specify individual files or groups of files using
-
- wildcards. For example:
-
-
- *arc l my_arc pr*
-
-
- The information displayed gives the original length of the file,
-
- and how long it is in its compressed form. The time and date stamps for
-
- the file and information on which form of data compression has been used
-
- to store the file. You will notice that this is preceded by either 'PC'
-
- or 'ARC', which indicates whether the file is stored in PC or Archimedes
-
- format.
-
-
-
- t = test archive integrity
-
-
- A CRC (Cyclic Redundancy Check) is kept for each file added to the
-
- archive, this allows ARC to tell you if a file has been corrupted. This
-
- can happen when you are transferring files between different computers.
-
- The 't' command unpacks all of the archive entries (without saving them
-
- anywhere), and checks the CRC for each file against the recorded value.
-
- It reports back to you any damage to the archive. For example, to test
-
- that the archive 'my_arc' has been recieved correctly, type:
-
-
- *arc t my_arc
-
- Archimedes ARC Page 6
-
-
-
-
- b = retain backup copy of archive
-
-
- When you add a file to an archive, the original archive is renamed to
-
- B_oldname. Normally, this is deleted after the file has been succesfully
-
- added. By using the 'b' option, you can keep a copy of the original
-
- archive. For example, if you wanted to add the file 'program' to the
-
- archive 'my_arc', but want to keep a backup copy of the archive,
-
- then type:
-
-
- *arc ab my_arc program
-
-
- The backup archive is called 'b_my_arc'.
-
-
-
- s = suppress compression (store only)
-
-
- This allows you to add files to the archive without compressing them.
-
-
-
- w = suppress warning messages
-
-
- This option prevents warning messages being printed.
-
-
-
- n = suppress notes and comments
-
-
- This option suppresses notes and comments.
-
-
-
- o = overwrite existing files when extracting
-
-
- When you extract a file, it may be that a file with the same name
-
- already exists. Normally, you will be prompted to overwrite the file. If
-
- you then select N, you will be prompted for permission to rename the
-
- file. If you then select Y, ARC will pick a sensible name, but if you
-
- select N, ARC will continue to the next file to be extracted. The 'o'
-
- option allows you to prevent all prompting, and just overwrite existing
-
- files. For example:
-
-
- *arc xo my_arc
-
-
-
- i = Use IBM PC Archive format
-
-
- When you add a file to an archive, ARC assumes that you want the file to
-
- be stored with its load and exec addresses and attributes. However, if
-
- you want to give an archive to a friend with a PC, you should store the
-
- files in PC format by adding the 'i' option to the command line. For
-
- example, to add a PC file to an archive, type:
-
-
- *arc ai my_arc PCprog
-
- Archimedes ARC Page 7
-
- q = Use PKARC style squashing
-
-
- Squashing is a variation on LZW coding used by the fairly popular PC
-
- program PKARC. By adding this option, you make ARC use squashing instead
-
- of crunching. You should consider that squashing will not always be
-
- more efficient than crunching and often will produce only small gains.
-
- However, there are far more copies of ARC than PKARC, and these will not
-
- be able to unpack squashed archives. ARC from version 1.1, can unpack
-
- IBMPC archives made using PKARC and it will do this whether you set the
-
- q flag or not.
-
-
-
- g = Encrypt/decrypt archive entry
-
-
- The 'g' (garble) option allows you to give a password which is used to
-
- encrypt files stored in the archive. The data compression normally
-
- applied will make files unreadable using *TYPE or *DUMP, this lets only
-
- people who know the password extract them from the archive. For example,
-
- if you wish to add 'newfile' to the archive 'my_arc', and encrypt it
-
- using the password 'beebug', type:
-
-
- *arc agbeebug my_arc newfile
-
-
- When you want to extract the file again, you should type:
-
-
- *arc xgbeebug my_arc newfile
-
-
- The password can be any length, and is not case sensitive. You can if
-
- you wish use different passwords for each file in an archive, but we
-
- advise against it. If you should forget or mistype your password, it is
-
- unlikely that you will ever recover the file.
-
- Archimedes ARC Page 8
-
-
-
-
- 4. Archive file format
-
- ----------------------
-
- An Archive, is a binary file consisting of archive markers, archive headers
-
- and file data. All archives are preceded by an archive marker. This is a
-
- single byte of value 27.
-
-
- An archive header, consists of several bytes.
-
-
- byte 1 Header version number. This tells you how the file data is stored
-
- and how many bytes there are in the header. The header version
-
- numbers for the PC, are detailed below. An Archimedes header
-
- version number is identical to the corresponding PC number except
-
- it has bit 7 set.
-
-
- bytes 2-15 Filename
-
-
- bytes 16-19 Compressed file length
-
-
- bytes 20,21 File date stamp
-
-
- bytes 22,23 File time stamp
-
-
- bytes 24,25 CRC for the file
-
-
- bytes 26-29 If the header type is greater than 1, these hold the original
-
- file length otherwise they are not present.
-
-
- bytes 30-33 If bit 7 of the header version number is set, these bytes hold
-
- the Archimedes load address for the file otherwise they are not
-
- present.
-
-
- bytes 34-37 If bit 7 of the header version number is set, these bytes hold
-
- the Archimedes exec address for the file otherwise they are not
-
- present.
-
-
- bytes 38-41 If bit 7 of the header version number is set, these bytes hold
-
- the Archimedes file attributes otherwise they are not present.
-
-
- The archive header, is followed by the file data.
-
-
- The file data is followed by another archive marker
-
-
- The archive finishes with an archive marker followed by a zero byte.
-
-
- The time and date fields are always filled in. If the file has a load and exec
-
- address, these are the time and date when the file was added to the archive
-
- otherwise, they are derived from the Archimedes datestamp. In all extract
-
- operations on Archimedes format archives, the contents of the load and exec
-
- fields take precedence.
-
-
- PC and ARC formats may be mixed in one archive for use on the Archimedes.
-
- Archimedes ARC Page 9
-
-
-
-
- PC ARC Header version numbers:
-
-
- 1 = Old style, no compression
-
- 2 = New style, no compression
-
- 3 = Compression of repeated characters only
-
- 4 = Compression of repeated characters plus Huffman Squeezing
-
- 5 = Lempel-Zev packing of repeated strings (old style)
-
- 6 = Lempel-Zev packing of repeated strings (new style)
-
- 7 = Lempel-Zev Welch packing with improved hash function
-
- 8 = Dynamic Lempel-Zev packing with adaptive reset
-
- 9 = PKARC style squashing
-
-
- The time and date stamps are two byte values from which the time in years
-
- etc., can be found as follows;
-
-
- year = (date >> 9) & 0x7f;
-
- month = (date >> 5) & 0x0f;
-
- day = date & 0x1f;
-
-
- hour = (time >> 11) & 0x1f;
-
- minute = (time >> 5) & 0x3f;
-
- second = (time & 0x1f) * 2;
-
-
- Where years are offset from 1980, months begin with 1=January.
-
- Archimedes ARC Page 10
-
-
-
-
- 5. ARC support
-
- --------------
-
- Please send any comments or suggestions for ARC to the address below. In
-
- addition, if you would like details of the latest version of ARC and how to
-
- get hold of a copy, please contact:
-
-
- Software Manager
-
- Beebug Ltd.
-
- Dolphin Place,
-
- Holywell Hill,
-
- St. Albans,
-
- Herts.
-
- AL1 1EX
-
-
- Tel. (0727) 40303